﻿Imports Commander_Wars.Spieletools
''' <summary>
''' Wird zu erstellen des KO's Olaf verwendet copyright Nintendo und Intelligent System
''' </summary>
''' <remarks></remarks>
Public Class KOOlaf
    Inherits ObjektKO
    Public Sub New(ByVal Spieler As Integer)
        MyBase.New(Spieler, KIGabeEinsatzstellen.RundenAnfang)
        StartwerteLaden()
    End Sub
    Public Sub New(ByVal Spieler As Integer, ByVal Gabefuellstand As Integer, ByVal Gabenart As Gabemodi, ByVal neuSternkosten As Integer)
        MyBase.New(Spieler, Gabefuellstand, Gabenart, neuSternkosten, KIGabeEinsatzstellen.RundenAnfang)
        StartwerteLaden()
    End Sub

    Private Sub StartwerteLaden()
        KOID = "OLAF"
        Armee = Armeen.BM.ToString
        Musik = "Olaf"
        Bild = GetBildID()
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.AdvanceWars
                Sternkosten = 1000
                Gabekosten = 0
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
                Gaben(1) = Gaben(0)
            Case CommanderWarsGameModi.AdvanceWars2
                Sternkosten = 1000
                Gabekosten = 3
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case CommanderWarsGameModi.AdvanceWarsDS
                Sternkosten = 1000
                Gabekosten = 3
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case CommanderWarsGameModi.AdvanceWarsDC
                Sternkosten = 1000
                Gabekosten = 0
                SpezialgabeKosten = 6
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case Else
                Sternkosten = 1000
                Gabekosten = 3
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
        End Select
        KORange = 2
        KOname = Objektverwalter.GetKO(Bild).KOBeschreibung.Name

        KOLaden()
    End Sub

    Public Overrides Sub KOLaden()
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.AdvanceWars
                Bewegunssenker = New ObjektSpielfeld.Wetterarten() {ObjektSpielfeld.Wetterarten.Schnee, ObjektSpielfeld.Wetterarten.Regen}
                Bewegungswetter = New Bewegungsarten() {Bewegungsarten.Sonne, Bewegungsarten.Schnee}
                LandschaftsVertauschung = New String(,) {{"SCHNEE", "EBENE"}, {"SCHNEE+SCHROTT", "EBENE+SCHROTT"}, {"GIPFEL", "BERG"}, {"KIEFERN", "WALD"}, {"STRASSENFROST", "STRASSE"}}
                Wetterimmunitaet = New ObjektSpielfeld.Wetterarten() {ObjektSpielfeld.Wetterarten.Schnee}
            Case CommanderWarsGameModi.AdvanceWars2
                Bewegunssenker = New ObjektSpielfeld.Wetterarten() {ObjektSpielfeld.Wetterarten.Schnee, ObjektSpielfeld.Wetterarten.Regen}
                Bewegungswetter = New Bewegungsarten() {Bewegungsarten.Sonne, Bewegungsarten.Schnee}
                LandschaftsVertauschung = New String(,) {{"SCHNEE", "EBENE"}, {"SCHNEE+SCHROTT", "EBENE+SCHROTT"}, {"GIPFEL", "BERG"}, {"KIEFERN", "WALD"}, {"STRASSENFROST", "STRASSE"}}
                Wetterimmunitaet = New ObjektSpielfeld.Wetterarten() {ObjektSpielfeld.Wetterarten.Schnee}
            Case CommanderWarsGameModi.AdvanceWarsDS
                Wetter = ObjektSpielfeld.Wetterarten.Schnee
                Wetterbouns = 20
                Bewegunssenker = New ObjektSpielfeld.Wetterarten() {ObjektSpielfeld.Wetterarten.Schnee, ObjektSpielfeld.Wetterarten.Regen}
                Bewegungswetter = New Bewegungsarten() {Bewegungsarten.Sonne, Bewegungsarten.Schnee}
                LandschaftsVertauschung = New String(,) {{"SCHNEE", "EBENE"}, {"SCHNEE+SCHROTT", "EBENE+SCHROTT"}, {"GIPFEL", "BERG"}, {"KIEFERN", "WALD"}, {"STRASSENFROST", "STRASSE"}}
                Wetterimmunitaet = New ObjektSpielfeld.Wetterarten() {ObjektSpielfeld.Wetterarten.Schnee}
            Case Else
                Wetter = ObjektSpielfeld.Wetterarten.Schnee
                Wetterbouns = 20
                Bewegunssenker = New ObjektSpielfeld.Wetterarten() {ObjektSpielfeld.Wetterarten.Schnee, ObjektSpielfeld.Wetterarten.Regen}
                Bewegungswetter = New Bewegungsarten() {Bewegungsarten.Sonne, Bewegungsarten.Schnee}
                LandschaftsVertauschung = New String(,) {{"SCHNEE", "EBENE"}, {"SCHNEE+SCHROTT", "EBENE+SCHROTT"}, {"GIPFEL", "BERG"}, {"KIEFERN", "WALD"}, {"STRASSENFROST", "STRASSE"}}
                Wetterimmunitaet = New ObjektSpielfeld.Wetterarten() {ObjektSpielfeld.Wetterarten.Schnee}
        End Select
        If DataSettings.CommanderWarsGameModus = CommanderWarsGameModi.AdvanceWarsDC Then
            'Dafuer sinkt die Feuerkraft aber drastisch
            WetterReichweitenbonus(0) = 0
        End If
    End Sub

    Public Overrides Sub Gabeeinsetzen(Optional ByVal OhneFunktion As Boolean = False)
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.AdvanceWars2
                Dim M As ObjektSpielMenue = Objektverwalter.Menue
                If OhneFunktion = False Then
                    BackbufferSpiel.AddAnimation("SCREENFLASH", 0, New Point, True, ObjektSpielfeld.TopLayer)
                    WetterAendern(ObjektSpielfeld.Wetterarten.Schnee, 2)
                End If
                GabeEingesetzt()
            Case CommanderWarsGameModi.AdvanceWarsDS
                Dim M As ObjektSpielMenue = Objektverwalter.Menue
                Wetterbouns = 30
                If OhneFunktion = False Then
                    BackbufferSpiel.AddAnimation("SCREENFLASH", 0, New Point, True, ObjektSpielfeld.TopLayer)
                    WetterAendern(ObjektSpielfeld.Wetterarten.Schnee, 2)
                End If
                GabeEingesetzt()
            Case Else
                Dim M As ObjektSpielMenue = Objektverwalter.Menue
                Wetterbouns = 30
                If OhneFunktion = False Then
                    BackbufferSpiel.AddAnimation("SCREENFLASH", 0, New Point, True, ObjektSpielfeld.TopLayer)
                    WetterAendern(ObjektSpielfeld.Wetterarten.Schnee, 2)
                End If
                GabeEingesetzt()
        End Select

    End Sub
    Public Overrides Function GetPowerScript(ByVal Power As Integer) As KOCustom.Power.PowerScript
        Select Case Power
            Case 1
                Dim P As New KOCustom.Power.PowerScript
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectChangeWeather(ObjektSpielfeld.Wetterarten.Schnee, 2))
                Return P
            Case 2
                Dim P As New KOCustom.Power.PowerScript
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectChangeWeather(ObjektSpielfeld.Wetterarten.Schnee, 2))
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectMassDamage(2, KOCustom.Power.PowerScript.EffectMassDamage.DamageUnit.AllEnemies))
                Return P
            Case Else
                Return Nothing
        End Select
    End Function
    Public Overrides Sub SpezialGabeeinsetzen(Optional ByVal OhneFunktion As Boolean = False)
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.AdvanceWars
                Dim M As ObjektSpielMenue = Objektverwalter.Menue
                If OhneFunktion = False Then
                    BackbufferSpiel.AddAnimation("SCREENFLASH", 0, New Point, True, ObjektSpielfeld.TopLayer)
                    WetterAendern(ObjektSpielfeld.Wetterarten.Schnee, 2)
                End If
                GabeEingesetzt()
            Case CommanderWarsGameModi.AdvanceWars2
                If OhneFunktion = False Then
                    Dim WZeit As Integer = 2
                    AnimationFeindliche("SPEZIALGABE", WZeit)
                    BackbufferSpiel.AddAnimation("SCREENFLASH", WZeit, New Point, True, ObjektSpielfeld.TopLayer)
                    AlleFeindeBeschaedigen(2)
                    WetterAendern(ObjektSpielfeld.Wetterarten.Schnee, 2)
                End If
                GabeEingesetzt()
            Case CommanderWarsGameModi.AdvanceWarsDS
                Dim M As ObjektSpielMenue = Objektverwalter.Menue
                Wetterbouns = 30
                If OhneFunktion = False Then
                    Dim WZeit As Integer = 2
                    AnimationFeindliche("SPEZIALGABE", WZeit)
                    BackbufferSpiel.AddAnimation("SCREENFLASH", WZeit, New Point, True, ObjektSpielfeld.TopLayer)
                    AlleFeindeBeschaedigen(2)
                    WetterAendern(ObjektSpielfeld.Wetterarten.Schnee, 2)
                End If
                GabeEingesetzt()
            Case Else
                Dim M As ObjektSpielMenue = Objektverwalter.Menue
                Wetterbouns = 50
                If OhneFunktion = False Then
                    Dim WZeit As Integer = 2
                    AnimationFeindliche("SPEZIALGABE", WZeit)
                    BackbufferSpiel.AddAnimation("SCREENFLASH", WZeit, New Point, True, ObjektSpielfeld.TopLayer)
                    AlleFeindeBeschaedigen(2)
                    WetterAendern(ObjektSpielfeld.Wetterarten.Schnee, 2)
                End If
                GabeEingesetzt()
        End Select

    End Sub

    Public Overrides Sub KOFrame()
        'Wir machen nichts
    End Sub
End Class

Public Class KOBeschreibungOlaf
    Inherits ObjektKOBeschreibung
    Public Sub New()
        Name = "Olaf"
        Fein = "Warme Schuhe"
        Nein = "Regenwolken"
        Beschreibung = New String() {"Oberbefehlshaber von Blue Moon.", "Er gibt alles fuer sein Land.", "Er ist ausserdem ein genialer Stratege."}
        Stil = New String() {"Seine Truppen sind immun gegen", "Schnee und kaempfen in im besser.", "Allerdings sind sie im Regen", "langsamer."}
        Gabebeschreibung = New String() {"Ein Schneesturm bricht ein."}
        SpezialgabeBeschreibung = New String() {"Ein Schneesturm bricht ein", "und alle feindlichen Einheiten", "nehmen 2 TP Schaden."}
        GabeKosten = 3
        Spezialgabekosten = 4
        Gaben = New String() {"Schneesturm", "Winterwut"}
        Synergie = New Decimal() {1, 2, 1, 0.5, -2, -1, 0.5#, 0.5#}
        KONamen = New String() {"KID", "ALEXANDER", "TEMPEST", "COLIN", "KAT", "VON BOLT", "WALTER", "RATTIGAN"}
        Doppelgabenamen = New String() {"Schneemarsch", "Patriotismus", "Winterliche Macht", "Doppel-Gabe", "Doppel-Gabe", "Doppel-Gabe", "Doppel-Gabe", "Doppel-Gabe"}
        Gabesaetze = New String() {"Oho! Ho! Ho! Glaubst du deine klappernden Truppen koennen der Kaelte widerstehen?" _
                                  , "Weder Mensch noch Maschine koennen der Macht der Natur widerstehen." _
                                  , "Du wirst es bereuen mich herausgefordert zu haben." _
                                  , "Der Wind des Krieges bringt Schnee." _
                                  , "Deine Waffe sind nutzlos gegen die Maechte der Natur!" _
                                  , "Ich werde dich beerdigen."}
        Siegsaetze = New String() {"Olafs Truppen kennen keine Herausforderung." _
                                , "Ich habe gewonnen!.. Das ist... Wir haben gewonnen." _
                                , "Am Ende ist Olaf siegreich."}
        Tauschsaetze = New String() {"Ich lehre euch die Bedeutung von Macht." _
                                    , "Endlich mein Zug."}
        Doppelgabesaetze = New DoppelGabesatz() {New DoppelGabesatz("ALEXANDER", "OLAF", "Bin ich gut genug?", "Das ist es was dir fehlt! Ein Anfuehrer muss von sich selbst ueberzeugt sein.") _
                                              , New DoppelGabesatz("ALEXANDER", "OLAF", "Wann kommst du runter Vater?", "Wenn ich Lust habe. Hast du denn keine Ideen...") _
                                              , New DoppelGabesatz("OLAF", "ALEXANDER", "Ich hoffe du hast was aus ihrer Niederlage gelernt. Mein Sohn.", "Was? Das Inkompetenz unabwendbar ist? Ich glaube das nicht.") _
                                              , New DoppelGabesatz("OLAF", "ALEXANDER", "Naechstes Mal ueberlasse ich dir einen Teil des Ruhms.", "Ohne mich waeren sie gar nicht auf deiner Seite.") _
                                              , New DoppelGabesatz("KID", "OLAF", "Hey wenn du kaempfen willst. Gehe ich", "Kid du kleiner...!") _
                                              , New DoppelGabesatz("KID", "OLAF", "Wenn es Regen gibt, dann solltest du kaempfen!", "Regen oder Schnee mich haet nichts auf.") _
                                              , New DoppelGabesatz("OLAF", "TEMPEST", "Hmpf. Du kaempst besser als du aussiehst", "Das ist der Grund warum ich immer noch kaempfe!") _
                                              , New DoppelGabesatz("TEMPEST", "OLAF", "Wetter? wenn interresiert das Wetter!", "Hauptsache es ist wild.")}
        Niederlagesaetze = New String() {"Unglaublich! Wir wurden zurueck gedraengt? Was passiert da?", _
                                      "Naechstes Mal zeige ich dir was wahre Macht bedeutet. Merke dir meine Worte!"}
    End Sub
End Class
